Network software ensures that information passed through the cabling is both complete and correctly interpreted by the receiving computers. In order to accomplish this, the software is organized into functional layers, called protocols. Transactions between layers are minimal so that data transfer occurs efficiently.
Because each layer is defined by function, rather than structure, any layer may be altered without affecting other layers. For example, a network connected by copper cable could switch to satellite communication with no noticeable difference, (except decreased cost and increased reliability).